В NumPy, Управление точностью представляет собой сознательный выбор разрядности для баланса между эффективностью использования памяти и численной корректностью. В отличие от стандартных целых чисел в Python, которые имеют произвольную точность, NumPy использует типы фиксированного размера на языке С (например, int32_t, uint64_t).
1. Иерархия типов
Типы данных в NumPy определяют объем занимаемой памяти. Хотя np.int_() обеспечивает размер, зависящий от платформы, надежные системы полагаются на фиксированные псевдонимы (Таблица: стр. 34), чтобы обеспечить согласованность на разных аппаратных платформах.
- Целые числа:
int8_t,int16_t,int32_t,int64_t. - Беззнаковые:
uint8_tдоuint64_t. - Указатели:
intptr_t,uintptr_t.
2. Инструменты анализа
Перед выполнением арифметических операций используйте np.iinfo() и np.finfo() для проверки границ. Например, 1 + np.finfo(np.longdouble).eps определяет машинную эпсилон — порог, при котором дальнейшие сложения больше не изменяют значение.
3. Механизм переполнения
NumPy не выдает ошибок при переполнении; он работает незаметно. При использовании np.power(100, 8, dtype=np.int32) происходит обрезание, в то время как float64 переходит в бесконечность. Используйте np.issubdtype(d, np.floating) чтобы проверить категории перед операциями.